Skip to content

feat: add Q7 remote control trait - #1039

Open
ramon-angosto wants to merge 2 commits into
Python-roborock:mainfrom
ramon-angosto:q7/2-remote-control
Open

ramon-angosto wants to merge 2 commits into
Python-roborock:mainfrom
ramon-angosto:q7/2-remote-control

Conversation

@ramon-angosto

Copy link
Copy Markdown

Depends on #1038. Only the last commit belongs to this PR.

Summary

Adds Q7PropertiesApi.remote (RemoteTrait), mirroring the Q10 remote API:

  • stop() enters manual mode and holds the robot in place.
  • forward(), left(), right() move the robot.
  • exit_remote() leaves manual mode.

New Q7RemoteDirection enum for the direction codes.

Device protocol

  • prop.set {"sweep_type": 5} enters manual mode. The device then reports work_mode 2.
  • service.set_direction {"direction": n} moves the robot: 1 forward, 2 turn left, 3 turn right, 0 exit.
  • Each command moves the robot for a short burst only, so callers repeat it (about every 125 ms in the official app) while a direction is held.
  • Leaving remote mode sends direction 0 and then prop.set {"sweep_type": 0}.

The official app only offers forward, left and right; there is no backward.

Testing

  • Unit tests for every command.
  • Verified on a Q7 TF+ (roborock.vacuum.sc05, firmware 03.01.80).

Add `clean_zone` and `clean_zones` to the Q7 properties API. Zones are given
as two opposite corners in the common Roborock millimetre coordinate space
through a new `Q7RoborockPoint`, which converts to and from the Q7 world
coordinates (meters, origin next to the dock).

The device expects the zone preference type to be selected first
(`service.set_preference_type`), then the zone corners as a flat list
(`service.set_zone_points`), and finally `service.set_zone_clean` to start.
Several zones are concatenated into a single task.
Add a `RemoteTrait` to the Q7 properties API, mirroring the Q10 remote API.
Manual mode is entered with `prop.set sweep_type=5` and the robot is driven
with `service.set_direction` (1 forward, 2 left, 3 right, 0 exit). Each
command moves the robot for a short burst, so callers repeat it while a
direction is held. Leaving remote mode restores `sweep_type=0`.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant